import java.util.concurrent.Semaphore;


public class Adulto extends Thread{

	private int niniosOahu,adultosOahu,niniosMolokai,adultosMolokai;
	private Bote bote;
	private String ubInicial,nomb;
	private Semaphore lock;

	public Adulto(int adultos, int ninios, Bote nbote,String ubicacion,String nombre,Semaphore candado){
		niniosOahu=ninios;
		adultosOahu=adultos;
		bote=nbote;
		ubInicial=ubicacion;
		nomb=nombre;
		lock=candado;
	}

	public synchronized void run(){
		try {

				Thread.sleep(100);
				bote.notifyObj();
				lock.acquire(2);
				if(bote.getUbicacion()==ubInicial && !bote.isTienePiloto()){		
					adultosOahu--;				
					bote.setPasajeros(2);
					bote.setTienePiloto(true);
					bote.setPiloto(nomb);
					bote.viaje();
					bote.desembarco(nomb);
					bote.setUbicacion("Molokai");
					bote.setPasajeros(0);
					adultosMolokai++;
					lock.release(1);
					bote.notifyObj();
					bote.notifyObj();
					Thread.currentThread().join();
				}else{
					Thread.sleep(1000);
					System.out.println(nomb+" NO ME PUEDO IR!!");
					bote.notifyObj();
					lock.release(2);
					run();
				}
		//run();
		} catch (Exception e) {}
	}
}
